import Vue from 'vue';
import Vuex from 'vuex';
import axios from 'axios'

//  在框架中应用Vuex
Vue.use(Vuex);

export default {
    state: {
        //  定义属性(在vue组件使用)
        idHouse: {}, //  根据传值的ID获取对应房源详情
        nearbyHouse: [], //  附近房源
        type: '', //  判断点击的房源属于哪一类房源，精选房源（获取besthouse）或者新房源（获取newhouse）
        max_len: 0
    },
    mutations: {
        //  给上面的state定义的属性设置值

        // 这个方法，就是清空nearbyHouse属性的值，设置空[]
        setnearbyHouse(state) {
            state.nearbyHouse = [];
        }
    },
    actions: {

        getOneHouse({ state }, obj) {

            let hid = obj.hid;
            let type = obj.type;
            console.log("detail的getOneHouse的type:", type);

            state.type = type;
            //  请求数据
            axios({
                method: 'get',
                url: './data/house_data.json'
            }).then((res) => {
                let data = res.data;
                if (data.code === 200) {
                    //  设置数据

                    let Houses = type === 'good' ? data.bestHouse : data.newHouse;
                    Houses.forEach((v) => {
                        if (v.hid === parseInt(hid)) {
                            state.idHouse = v;
                        }
                    })
                }
            }).catch(function(err) {
                // console.log('1111');
                console.log(err)
            })
        },
        //获取房源列表
        getnearbyHouse({ state }, pages) {

            let star = (pages - 1) * 3;
            let end = star + 3;

            axios({
                method: 'get',
                url: './data/house_data.json'
            }).then((res) => {

                let data = state.type === 'good' ? res.data.bestHouse.slice(star, end) : res.data.newHouse.slice(star, end);
                console.log(data);

                state.nearbyHouse = state.nearbyHouse.concat(data);

                //  记录房源总数
                state.max_len = res.data.bestHouse.length;

            }).catch((err) => {
                console.log(err);
            })
        }
    },
    modules: {
        //  用来引入其他中间件
    }
};